package com.majun.config.standardfilter;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author majun
 * @date 2024/11/30
 */
public class HttpReplacedFilter implements Filter  {

    @Override  
    public void destroy() {  
    }
  
    @Override  
    public void doFilter(ServletRequest request, ServletResponse response,  
            FilterChain chain) throws IOException, ServletException {  
        
        ServletRequest requestWrapper = null;
        ServletResponse responseWrapper = null;
        if(request instanceof HttpServletRequest){
//            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
            requestWrapper = new RequestWrapper((HttpServletRequest) request);
//            responseWrapper = new ResponseWrapper((HttpServletResponse) response);
            responseWrapper = new ResponseWrapper((HttpServletResponse) response);
//            if("POST".equals(httpServletRequest.getMethod().toUpperCase())){
//            if(HttpMethod.POST.name().equals(httpServletRequest.getMethod().toUpperCase())){
//                requestWrapper = new BodyReaderHttpServletRequestWrapper((HttpServletRequest) request);
//            }

        }

        if(requestWrapper == null) {    
            chain.doFilter(request, response);    
        } else {
            //替换！
            chain.doFilter(requestWrapper, responseWrapper);
        }    
    }  
  
    @Override  
    public void init(FilterConfig arg0) throws ServletException {  
    }

}